// 中文效验
const validZh = (rule, value, callback) => {
  if (value) {
    if (/[\u4E00-\u9FA5]/g.test(value)) {
      callback(new Error('不能输入汉字'));
    }
    else {
      callback();
    }
    callback();
  }
};
// 效验数字
const validNum = (rule, value, callback) => {
  if (value) {
    const price = /^[0-9]*$/
    if (!price.test(value)) {
      callback(new Error('只能为数字'))
    }
    else {
      callback()
    }
    callback();
  }
}
// 效验手机号
const validPhone = function (rule, value, callback) {
  if (value) {
    if (!/^1\d{10}$/.test(value)) {
      callback(new Error('手机号格式错误'))
    }
    else {
      callback()
    }
    callback();
  }
}
// 验证邮箱
const validEmail = (rule, value, callback) => {
  const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
  if (value) {
    if (!mailReg.test(value)) {
      callback(new Error('格式错误'))
    }
    else {
      callback()
    }
    callback();
  }
}
// 验证客户来源
const validCustomerSource = (rule, value, callback) => {
  if (!value.id) {
    callback(new Error('请选择客户来源'))
  }
  callback()
};
// 验证合同类型
const validContractType = (rule, value, callback) => {
  if (!value.id) {
    callback(new Error('请选择合同类型'))
  }
  callback()
};
// 验证人员类型
const validPersonnelType = (rule, value, callback) => {
  if (!value.id) {
    callback(new Error('请选择人员类型'))
  }
  callback()
};
// 验证客户
const validCustomer = (rule, value, callback) => {
  if (!value.id) {
    callback(new Error('请选择客户'))
  }
  callback()
};
// 验证服务机会下拉
const validCustomerServiceSelect = (rule, value, callback) => {
  if (!value.id) {
    callback(new Error('请选择服务机会'))
  }
  callback()
};
// 验证服务机会
const validCustomerService = (rule, value, callback) => {
  if (value.length === 0) {
    callback(new Error('至少有一个服务机会'))
  }
  else {
    for (let i = 0; i < value.length; i++) {
      if (!value[i].serviceOpportunityId) {
        callback(new Error('服务机会不能为空'))
        break
      }
    }
  }
  callback()
};
// 验证客户电话
const validCustomerPhone = (rule, value, callback) => {
  if (value.length === 0) {
    callback(new Error('至少有一个联系人'))
  }
  else {
    for (let i = 0; i < value.length; i++) {
      if (!value[i].contacts) {
        callback(new Error('联系人名称不能为空'))
        break
      }
      if (!value[i].mobilePhone) {
        callback(new Error('联系方式不能为空'))
        break
      }
      else {
        const phone = value[i].mobilePhone.split(',')
        if (phone.length === 0) {
          callback(new Error('联系方式不能为空'))
          break
        }
        else {
          for (let j = 0; j < phone.length; j++) {
            if (!phone[j]) {
              callback(new Error('联系方式不能为空'))
              break
            }
            else {
              if (phone[j].length < 6) {
                callback(new Error('联系方式格式不正确'))
                break
              }
            }
          }
        }
      }
    }
  }
  callback()
};
// 验证跟进时间
const validFollowTime = (rule, value, callback) => {
  if (!value) {
    callback(new Error('请填写时间'))
  }
  else {
    const data = value.split(' ')
    if (data.length === 0) {
      callback(new Error('请填写时间'))
    }
    else {
      if (data[0]) {
        if (data[0] == null || data[0] == '' || data[0] == 'null') {
          callback(new Error('请填写时间'))
        }
      }
      else {
        callback(new Error('请填写时间'))
      }
      if (data[1]) {
        if (data[1] == null || data[1] == '' || data[0] == 'null') {
          callback(new Error('请填写时间'))
        }
      }
      else {
        callback(new Error('请填写时间'))
      }
    }
  }
  callback()
};

export {
  validZh, validPhone, validNum, validEmail, validCustomerSource, validCustomerService,
  validCustomerPhone, validFollowTime, validContractType, validCustomerServiceSelect, validCustomer,
  validPersonnelType
}
